草庐IT

javascript - Indy 可以运行 Javascript 吗?

全部标签

ruby - 我可以动态定义一个采用 block 的 Ruby 方法吗?

我知道我可以使用define_method在类上动态定义方法,并且我使用block的元数指定此方法采用的参数。我想动态定义一个接受可选参数和block的方法。在Ruby1.9中,这很容易,因为现在允许将block传递给block。不幸的是,Ruby1.8不允许这样做,所以下面的方法将不起作用:#Ruby1.8classXdefine_method:foodo|bar,&baz|putsbarbaz.callifblock_given?endendx=X.newx.foo("foo"){puts"called!"}#=>LocalJumpError:noblockgiven用yield替

ruby-on-rails - 为什么我应该只在测试环境而不是开发或生产环境中在我的 Rails 应用程序上运行 rspec 规范?

有人告诉我,除了测试之外,我不应该在rails_env中运行我的rspec规范。在生产或开发中运行规范的潜在问题是什么?我在两者中都运行规范。我通常在开发中运行规范,除非我正在测试使用Assets管道的东西。我为此切换到生产环境并花费15分钟预编译Assets。与我当前的方法相比,使用测试环境有什么优势吗?我搜索了答案,但没有任何内容解释为什么我不应该使用dev或prod。 最佳答案 在test环境中运行测试套件(例如rspec)旨在隔离资源以解决安全问题,尤其是数据库的完整性。测试通常会损坏或完全删除数据库中的数据。这同样适用于所

ruby - 我可以覆盖 Ruby 中的系统时区吗?

我在Ubuntu12.04上,我可以看到:$cat/etc/timezoneAmerica/Phoenix相应地,Time将返回一个非UTC时区的时间:$irb>Time.now=>2013-03-2713:44:49-0700>Time.at0=>1969-12-3117:00:00-0700我可以使用TZ环境变量覆盖系统时区:$TZ=UTCirb>Time.now=>2013-03-2720:47:19+0000>Time.at0=>1970-01-0100:00:00+0000无论如何,我可以在Ruby进程中以编程方式进行此更改吗? 最佳答案

ruby - 如何安全地让用户运行任意 Ruby 代码?

我意识到这听起来有点疯狂,但我正在做一个项目,我需要一个服务器来运行用户提供的Ruby代码并返回结果。我想防止这样的事情发生:system("rm-rf/")eval("something_evil")#etc...我确信一定有一些相当安全的方法可以做到这一点,因为它已经存在于tryruby.org等地方。非常感谢任何帮助,谢谢! 最佳答案 三个建议:1)看看Rubytaintlevels.这提供了一定程度的保护,防止eval('evil_code')类型的东西,等等。2)除非用户确实需要访问本地文件系统,否则请使用类似fakefs

ruby - 是否可以在有条件的情况下使用救援?

考虑一个Rack应用程序。如果我们没有运行测试,我只想处理错误:begindo_somethingifENV['RACK_ENV']!='test'rescue=>errorhandle_errorerrorendendend这会生成语法错误,意外的keyword_rescue(SyntaxError)救援=>错误有办法吗? 最佳答案 你能做这样的事情吗?begindo_somethingrescue=>errorifENV["RACK_ENV"]=="test"raiseerrorelsehandle_errorerrorende

ruby - 运行名为 "No SDKs Specified"的 Ruby 代码时出错

我已经下载了RubyMineIDE来运行ruby​​代码。我写了下面的代码:puts'hellowworld'但是当我要运行这个最小的程序时出现错误。IDE显示以下错误。"NoSDKsspecified"为什么?如果我想解决这个问题该怎么办?我是这门语言的初学者。你们能在这方面帮助我吗?我也想要你的建议。“RubyMine”是Ruby的最佳IDE吗?你用的是什么IDE? 最佳答案 您需要在这里配置SDK:使用AddSDK...按钮并指定系统上ruby​​可执行文件的路径。在Windows上,您应该使用http://rubyinsta

ruby-on-rails - 你如何分解出 RSpec 中常见的 "before(:each)"调用,以便多个规范可以使用它们?

我想分解这堆代码,以便我所有的Controller测试(好吧,几乎所有的)都使用这个before(:each)block:before(:each)do@user=User.newcontroller.stub(:authenticate_user!)controller.stub(:current_user).and_return(@user)controller.stub(:add_secure_model_data)end有什么办法吗?我不想将它包含在所有Controller中......因为有一些不需要它。基本上,每个从SecureController扩展的Controller

ruby - 在生产模式下运行瘦服务器不会加载我的 Assets

当我像这样加载thin时:thinstart-eproduction并尝试访问我的一个页面,我在日志输出中得到了这个:cache:[GET/]misscache:[GET/assets/main-bd1ef4b153740fb69fd615304b87ad0d.css]misscache:[GET/assets/jqModal-8fa734bf4f58524b2799abd73ab7d34f.css]misscache:[GET/assets/jquery-544665ba1d5b4f793290421aafed85c9.js]misscache:[GET/assets/applica

ruby - 使用 Knife 更新 Chef 中的运行列表

我有一本包含Recipe列表的Recipe。在chefknife中使用命令行工具从Recipe中添加一些特定Recipe(不是全部)的命令是什么?我知道将整个Recipe添加到运行列表的命令是knifenoderun_listaddservernamerecipe[cookbookname]。 最佳答案 所以你的想法是对的,knifenoderun_listadd$nodename$item就是你想要的命令。recipe[mycookbook]没有添加“整个Recipe”,而只是recipe[mycookbook::default]

ruby-on-rails - 为什么我在运行 "gem pristine --all"后不断收到这些错误

我尝试运行gempristine--all并且我不断在控制台中获取它。当我运行gempristine--all我得到这个:权限被拒绝....我什至尝试为每个gem执行geminstall并且仍然得到这个:`Ignoringbinding_of_caller-0.7.2becauseitsextensionsarenotbuilt.Try:gempristinebinding_of_caller--version0.7.2Ignoringbyebug-5.0.0becauseitsextensionsarenotbuilt.Try:gempristinebyebug--version5.